com.github.droidfu.http
Class BetterHttpRequestBase

java.lang.Object
  extended by com.github.droidfu.http.BetterHttpRequestBase
All Implemented Interfaces:
BetterHttpRequest, org.apache.http.client.ResponseHandler<BetterHttpResponse>

public abstract class BetterHttpRequestBase
extends Object
implements BetterHttpRequest, org.apache.http.client.ResponseHandler<BetterHttpResponse>


Field Summary
protected  List<Integer> expectedStatusCodes
           
protected static String HTTP_CONTENT_TYPE_HEADER
           
protected  org.apache.http.impl.client.AbstractHttpClient httpClient
           
protected  int maxRetries
           
protected  org.apache.http.client.methods.HttpUriRequest request
           
 
Method Summary
 BetterHttpRequestBase expecting(Integer... statusCodes)
          Define the set of HTTP status codes which you anticipate to be returned by the server, including error codes you'd like to explicitly handle.
 String getRequestUrl()
           
 BetterHttpResponse handleResponse(org.apache.http.HttpResponse response)
           
 BetterHttpRequestBase retries(int retries)
          Set maximum number of retries for this particular request.
 BetterHttpResponse send()
          Sends the current request.
 org.apache.http.client.methods.HttpUriRequest unwrap()
           
 BetterHttpRequest withTimeout(int timeout)
          Set the socket timeout for this specific request.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HTTP_CONTENT_TYPE_HEADER

protected static final String HTTP_CONTENT_TYPE_HEADER
See Also:
Constant Field Values

expectedStatusCodes

protected List<Integer> expectedStatusCodes

httpClient

protected org.apache.http.impl.client.AbstractHttpClient httpClient

request

protected org.apache.http.client.methods.HttpUriRequest request

maxRetries

protected int maxRetries
Method Detail

unwrap

public org.apache.http.client.methods.HttpUriRequest unwrap()
Specified by:
unwrap in interface BetterHttpRequest
Returns:
the HttpClient request object wrapped by this request

getRequestUrl

public String getRequestUrl()
Specified by:
getRequestUrl in interface BetterHttpRequest
Returns:
the request URL

expecting

public BetterHttpRequestBase expecting(Integer... statusCodes)
Description copied from interface: BetterHttpRequest
Define the set of HTTP status codes which you anticipate to be returned by the server, including error codes you'd like to explicitly handle. Any status code part of this set will not be treated as an error, but returned to you as a normal server response. Any status codes returned by the server that are not part of this set will be raised as an HttpResponseException. This is very useful when dealing with REST-ful Web services, where it is common to serve error stati that indicate a failure in the application logic (e.g. 404 if a resource doesn't exist). You typically don't want to treat those as connection errors, but gracefully handle them like a normal success code.

Specified by:
expecting in interface BetterHttpRequest
Parameters:
statusCodes - the set of status codes that you want to manually handle as part of the response
Returns:
this request

retries

public BetterHttpRequestBase retries(int retries)
Description copied from interface: BetterHttpRequest
Set maximum number of retries for this particular request.

Specified by:
retries in interface BetterHttpRequest
Parameters:
retries - the maximum number of retries should the request fail
Returns:
this request

withTimeout

public BetterHttpRequest withTimeout(int timeout)
Description copied from interface: BetterHttpRequest
Set the socket timeout for this specific request.

Specified by:
withTimeout in interface BetterHttpRequest
Parameters:
timeout - the timeout in milliseconds
Returns:
this request

send

public BetterHttpResponse send()
                        throws ConnectException
Description copied from interface: BetterHttpRequest
Sends the current request. This method uses a special retry-logic (on top of that employed by HttpClient, which is better suited to handle network fail-overs when e.g. switching between Wi-Fi and 3G).

Specified by:
send in interface BetterHttpRequest
Throws:
ConnectException

handleResponse

public BetterHttpResponse handleResponse(org.apache.http.HttpResponse response)
                                  throws IOException
Specified by:
handleResponse in interface org.apache.http.client.ResponseHandler<BetterHttpResponse>
Throws:
IOException


Copyright © 2011. All Rights Reserved.